<?php

namespace app\v1\model;

use think\Model;

/**
 * 地区模型类
 */
class Region extends Model
{
    /**
     * 获取所有地区数据
     *  $option 查询参数
     */
    public function GetList($option)
    {
        // 创建匿名函数 方便多次调用 用完自动销毁
        $buildDb = function () use ($option) {
            $db = $this
                ->alias('r')
                ->field('r.*, p.name parent_name')
                ->join('region p', 'r.parent_id = p.id', 'LEFT');
            // 首先判断查询参数是否存在 之后在根据查询参数来添加查询条件
            // 根据地区名查询
            if (array_key_exists('name', $option) && !empty($option['name'])) {
                $db = $db->whereLike('r.name', '%' . $option['name'] . '%');
            }

            // 根据父级地区id查询
            if (array_key_exists('parent_id', $option) && !empty($option['parent_id'])) {
                $db = $db->where('parent_id', $option['parent_id']);
            }

            return $db;
        };

        $list = $buildDb()->select();

        return Result(1, '', [
            'list' => $list
        ]);
    }
}
